package com.tchintech.pay.sqllite;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import com.tchintech.pay.model.entity.AuthResult;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by Administrator on 2017/7/18 0018.
 */

public class OperateSql {
    private Context mContext;
    private MysqlLite mysqlLite;
    private SQLiteDatabase myDb;

    public OperateSql(Context context) {
        mContext = context;
        myDb = new MysqlLite(mContext).getWritableDatabase();
    }
    /**  -----------------------------增----------------------------------------------------------/
    /**
     * 增
     * 所需的是表里的所有参数
     * @param name  姓名
     * @param sex   性别
     * @param age   年龄
     */
    public void insterS(String name,String sex,String age){
        ContentValues values = new ContentValues();
        values.put("name",name);
        values.put("sex",sex);
        values.put("age",age);
        myDb.insert("Student",null,values);

    }

    public int lienget(){
        int num=0;
        Cursor cursor = myDb.rawQuery("SELECT * FROM Student", null);
        System.out.println("循环查询数据"+cursor.getCount());
       return num=cursor.getCount();
    }
    /**  -----------------------------查----------------------------------------------------------/

    /**
     * 查
     * moveToFirst  指向查询的第一个位置  一般用来判断是否为空
     * moveToNext   用来做循环 将指针指向下一行 来去数据的
     * @return
     */

    public List<AuthResult> queryS(){
        List<AuthResult> list=new ArrayList<AuthResult>();
        Cursor cursor = myDb.rawQuery("SELECT * FROM Student", null);
        while(cursor.moveToNext()){
            AuthResult ada=new AuthResult();
            String name=cursor.getString(cursor.getColumnIndex("name"));
            String sex=cursor.getString(cursor.getColumnIndex("sex"));
            String age=cursor.getString(cursor.getColumnIndex("age"));
            ada.setAuthCodeId(name);
            ada.setFailcode(sex);
            ada.setResult(age);
            list.add(ada);
        }
        cursor.close();
        return list;
    }

    /**  -----------------------------改----------------------------------------------------------/
    /**
     * sql数据库的更改
     * @param sex  需要修改的参数
     * @param age  表中能判断某一行的唯一标识
     */
    public void updataS(String name,String sex,String  age){
        ContentValues values = new ContentValues();
        values.put("sex",sex);
        values.put("name",name);
        myDb.update("Student",values,"age=?",new String[]{age});
    }

    /**  -----------------------------删----------------------------------------------------------/

    /**
     * 删除其中的某一条记录
     * @param age  年龄  唯一能识别的标识
     */
    public void deleteS(String age){
        //删除年龄等于多少的
        myDb.delete("Student","age=?",new String[]{age});
        //删除年龄大于多少的
      //  myDb.delete("Student","age>?",new String[] {"23"});

    }

    /**
     *  一次性清空某张表
     *  当前的实现方式如下：
     *  ① 首先根据表名删除对应的表
     *  ② 其次再次创建一个相同的表  这样来达到一次性清空表的目的
     * @param table_name
     */
    public void deleteTable(String  table_name){
        //删除表
        myDb.execSQL("DROP TABLE IF EXISTS " +table_name);
        //创建表
        myDb.execSQL(MysqlLite.FIRST);
    }


}
